//vuex 仓库
import Vue from 'vue'
import Vuex from 'vuex'
//引入网络请求
import {getFilmsApi} from '../api/filmApi'
//已插件的方式添加到Vue 中
Vue.use(Vuex)
//实例化
const store = new Vuex.Store({
  //全局
  state:{
    count:100,
    films:[],
    phone:'13252125126'
  },
  //vue的计算属性
  getters:{
    phone(state){
      //数据的处理
      return state.phone.substr(0,3)+'****'+state.phone.slice(7)
    }
  },
  //修改state的操作
  mutations:{
    //参数1，当前vuex中的state对象
    //参数2，可选参数 在调用此方法的数据 符合
    setIncr(state,data=1){
      state.count+=data
    },
    addFilms(state,data){
      state.films = data
    }
  },
  //进行异步请求 ajax
  actions:{
    async getFilmsAction(store,payload){
      //在这里进行网络请求，得到数据
      let ret = await getFilmsApi(payload)
      //发送给mutation 让它完成状态修改
      store.commit('addFilms',ret.data.films)
    }
  }
})
//导出
export default store